//============================================================================
// Name        : AbsList.h
// Author      : bycy
// Version     : 1.0
// Description : 
//============================================================================

#include "AbsListItr.h"

/* Structure of simple bitmap */

template < class Type > class AbsList{

public:
	
	/* 
	* Initialize an AbsList
	* 
	* REQUIRE:
	*	
	* RETURN:	
	*
	* NOTES:	
	*/

	AbsList(){};
	
	/* 
	* Deconstruct an AbsList
	* 
	* REQUIRE:
	*	
	* RETURN:	
	*
	* NOTES:	
	*/

	virtual ~AbsList(){};

	/* 
	* Test whether this AbsList is empty or not
	* 
	* REQUIRE:
	*	
	* RETURN:	ture if this AbsList is empty
	*		false if this AbsList is not empty	
	*
	* NOTES:	
	*/

	virtual IsEmpty() const = 0;

	/* 
	* Test whether this AbsList is full or not
	* 
	* REQUIRE:
	*	
	* RETURN:	ture if this AbsList is full
	*		false if this AbsList is not full	
	*
	* NOTES:	
	*/

	virtual IsFull() const = 0;

	/* 
	* Make this AbsList empty
	* 
	* REQUIRE:
	*	
	* RETURN:		
	*
	* NOTES:	
	*/

	virtual void MakeEmpty() = 0;

	friend class AbsListItr < Type >;

private:

	AbsList(const AbsList&){};

};